#pragma once

#include "AnimNui.h"

const int NO_HAND    = 0x0000;
const int LEFT_HAND  = 0x0001;
const int RIGHT_HAND = 0x0002;
const int BOTH_HAND  = 0x0003;
const int LEFT_HAND_MOVE  = 0x0004;
const int RIGHT_HAND_MOVE = 0x0008;

class Gesture
{
	enum HandUpState
	{
		fail,
		check1,
		check2,
		success
	};

	HandUpState rightHandUpState;
	HandUpState leftHandUpState;
	HandUpState twoHandUpState;

public:

	Gesture();
	~Gesture();
	void processGesture( NUI_SKELETON_DATA* currentSkeleton );
	void proccessRightHandUpGesture( NUI_SKELETON_DATA* currentSkeleton );
	double getRightShoulderHandAngle( NUI_SKELETON_DATA* currentSkeleton );
	void proccessLeftHandUpGesture( NUI_SKELETON_DATA* currentSkeleton );
	double getLeftShoulderHandAngle( NUI_SKELETON_DATA* currentSkeleton );
	void proccessTwoHandUpGesture( NUI_SKELETON_DATA* currentSkeleton );
	int getNavigation(NUI_SKELETON_DATA* currentSkeleton);
};